#ifndef _GAME_H_
#define _GAME_H_
#define WIN32_LEAN_AND_MEAN
#include <Windows.h>
#include "DXCore\GraphicsDevice.h"
#include "Input\Input.h"

class Game
{
private:
	bool Frame();
	void SetupWindows();
	void ShutdownWindows();

	GraphicsDevice *m_GraphicsDevice;
	Input *m_Input;

	LPCSTR m_AppName;
	HINSTANCE m_AppHandle;
	HWND m_hwnd;
	int m_XResolution, m_YResolution;
	bool m_IsFullScreenApp;
	
public:
	Game(LPCSTR appName, int resx, int resy, bool fullscreen);
	~Game();

	bool Initialize();
	void Run();
	void Exit();
	
	
	LRESULT CALLBACK MessageHandler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);
	
	/*virtual void GameLoop() = 0;
	virtual void LoadContent() = 0;*/
};

static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
static Game* GameHandle = 0;
#endif
